Communication in a computer internetwork involves the exchange of data between two or more entities interconnected by communication media. The entities are typically software programs executing on hardware computer platforms, such as end stations and intermediate stations. In particular, communication software executing on the end stations correlate and manage data communication with other end stations. The stations typically communicate by exchanging discrete packets or frames of data according to predefined protocols. A protocol, in this context, consists of a set of rules defining how the stations interact with each other.
A switch is an example of an intermediate station having a plurality of ports that interconnect the communication media to form a relatively small domain of stations, such as a subnetwork. Subnetworks or subnets provide an organizational overlay to an internetwork that facilitates transmission of data between the end stations, particularly for broadcast transmissions. Broadcasting is a powerful tool used to send a single frame to many stations at the same time. However, improper use of broadcasting can impact the performance of stations by interrupting them unnecessarily. The subnet functions to limit the proliferation of broadcast frames to stations within a broadcast domain. A router is an intermediate station that interconnects domains or subnets and executes network routing software to allow expansion of communication to end stations of other subnets. Collectively, these hardware and software components comprise a communications network and their interconnections are defined by an underlying architecture.
Modern communications network architectures are typically organized as a series of hardware and software levels or "layers" within each station. These layers interact to format data for transfer between, e.g., a source station and a destination station communicating over the internetwork. Predetermined services are performed on the data as it passes through each layer and the layers communicate with each other by means of the predefined protocols. The lower layers of these architectures are generally standardized and are typically implemented in hardware and firmware, whereas the higher layers are generally implemented in the form of software running on the stations attached to the internetwork. Examples of communications architectures include the Internet Packet Exchange (IPX) communications architecture and, as described below, the Internet communications architecture.
The Internet architecture is represented by four layers which are termed, in ascending interfacing order, the network interface, internetwork, transport and application layers. These layers are arranged to form a protocol stack in each communicating station of the network. FIG. 1 illustrates a schematic block diagram of prior art Internet protocol stacks 125 and 175 used to transmit data between a source station 110 and a destination station 150, respectively, of an internetwork 100. As can be seen, the stacks 125 and 175 are physically connected through a communications medium 180 at the network interface layers 120 and 160. For ease of description, the protocol stack 125 will be described.
In general, the lower layers of the communications stack provide internetworking services and the upper layers, which are the users of these services, collectively provide common network application services. The application layer 112 provides services suitable for the different types of applications using the internetwork, while the lower network interface layer 120 accepts industry standards defining a flexible network architecture oriented to the implementation of local area networks (LANs).
Specifically, the network interface layer 120 comprises physical and data link sublayers. The physical layer 126 is concerned with the actual transmission of signals across the communication medium and defines the types of cabling, plugs and connectors used in connection with the medium. The data link layer (i.e., "layer 2") is responsible for transmission of data from one station to another and may be further divided into two sublayers: Logical Link Control (LLC 122) and Media Access Control (MAC 124).
The MAC sublayer 124 is primarily concerned with controlling access to the transmission medium in an orderly manner and, to that end, defines procedures by which the stations must abide in order to share the medium. In order for multiple stations to share the same medium and still uniquely identify each other, the MAC sublayer defines a hardware or data link address called a MAC address. This MAC address is unique for each station interfacing to a LAN. The LLC sublayer 122 manages communications between devices over a single link of the internetwork.
The primary network layer protocol of the Internet architecture is the Internet protocol (IP) contained within the internetwork layer 116. IP is a network protocol that provides internetwork routing and relies on transport protocols for end-to-end reliability. An example of such a transport protocol is the Transmission Control Protocol (TCP) contained within the transport layer 114. The term TCP/IP is commonly used to refer to the Internet architecture. Protocol stacks and the TCP/IP reference model are well-known and are, for example, described in Computer Networks by Andrew S. Tanenbaum, printed by Prentice Hall PTR, Upper Saddle River, N.J., 1996.
Data transmission over the internetwork 100 therefore consists of generating data in, e.g., sending process 104 executing on the source station 110, passing that data to the application layer 112 and down through the layers of the protocol stack 125, where the data are sequentially formatted as a frame for delivery onto the medium 180 as bits. Those frame bits are then transmitted over an established connection of medium 180 to the protocol stack 175 of the destination station 150 where they are passed up that stack to a receiving process 174. Data flow is schematically illustrated by solid arrows.
Although actual data transmission occurs vertically through the stacks, each layer is programmed as though such transmission were horizontal. That is, each layer in the source station 110 is programmed to transmit data to its corresponding layer in the destination station 150, as schematically shown by dotted arrows. To achieve this effect, each layer of the protocol stack 125 in the source station 110 typically adds information (in the form of a header) to the data generated by the sending process as the data descends the stack.
For example, the internetwork layer encapsulates data presented to it by the transport layer within a packet having a network layer header. The network layer header contains, among other information, source and destination (logical) network addresses needed to complete the data transfer. The data link layer, in turn, encapsulates the packet in a frame, such as a conventional Ethernet frame, that includes a data link layer header containing information required to complete the data link functions, such as (physical) MAC addresses. At the destination station 150, these encapsulated headers are stripped off one-by-one as the frame propagates up the layers of the stack 175 until it arrives at the receiving process.
FIG. 2 is a schematic diagram of a frame format of an Ethernet frame 200 comprising destination and source MAC address fields 210, 220 and a protocol type field 230 that identifies the protocol (e.g., IP, IPX, AppleTalk, DECNet) of the data carried by the frame. Data field 250 contains information, including the network addresses, provided by the higher internetwork layers of the protocol stack. These network addresses are used by network layer protocols to identify source or destination stations of packets in the internetwork. Unlike the MAC address that has a predefined relationship to a station, the network address has a logical relationship that is typically established by a network adminstrator who assigns the address according to a predetermined network addressing arrangement. The assigned network address conveys information that can be used by the router when routing the packet through the internetwork. If the network address is hierarchical, the router may use a portion of the address to route the packet to a higher-level partition or domain in the internetwork.
For example, an IP network may be subdivided into subnets which are defined in a portion of an IP address. FIG. 3 is a schematic diagram of a format of an IP address 300 comprising a host portion 310 that identifies a station and a network portion 320 that describes a subnet number of the internetwork. Subnets offer a form of hierarchical addressing that is used by IP routing algorithms to perform hierarchical or prefix routing operations. These algorithms maintain information of all higher-level routing environments in routing tables for domains by recording their shortest unique address prefixes.
A station that supports more than one network layer protocol has multiple network addresses and multiple protocol stacks that present the same MAC address on a port for the different protocols. For example, a multi-protocol stack station connected to both an IP and an IPX network is assigned an IP network address and an IPX network address. FIG. 4 is a schematic diagram of a format of an IPX address 400 comprising a node portion 410 that identifies the MAC address of a station and a network portion 420 that identifies an IPX network number of the internetwork. The IPX network number is not inherently hierarchical, so hierarchical routing is not generally available with this protocol.
U.S. Pat. No. 5,394,402, issued on Feb. 28, 1995 to Floyd E. Ross (the "'402 patent"), discloses an arrangement that is capable of associating any port of a switch with any particular segregated network group. According to the '402 patent, any number of physical ports of a particular switch may be associated with any number of groups within the switch by using a virtual local area network (VLAN) arrangement that virtually associates the port with a particular VLAN designation. Specifically, Ross discloses a switch or hub for a segmented virtual local area network with shared media access that associates VLAN designations with at least one internal port and further associates those VLAN designations with messages transmitted from any of the ports to which the VLAN designation has been assigned.
The VLAN designation assigned (e.g., programmed) to each internal port is stored in a memory portion of the switch such that every time a message is received by the switch on an internal port the VLAN designation of that port is associated with the message. Association is accomplished by a flow processing element which looks up the VLAN designation in a memory based on the internal port where the message originated. In addition to the '402 patent, an IEEE standards committee is proposing a standard for Virtual Bridged Local Area Networks. See IEEE Standard 802.1q.
In many cases, it may be desirable to interconnect a plurality of switches in order to extend the VLAN associations of ports in the internetwork. Ross, in fact, states that an objective of his VLAN arrangement is to allow all ports and entities of the network having the same VLAN designation to interchange messages by associating a VLAN designation with each message. Those entities having the same VLAN designation function as if they are all part of the same LAN. Each VLAN may be further associated with a subnet or broadcast domain so as to constrain broadcasting of frame messages to a defined subset of stations, preferably through "bridging" operations of the switch. As noted, a broadcast domain is the smallest number of ports needed to receive a broadcast frame of a particular protocol type (IP, IPX, AppleTalk, DECNet, etc). For example, the granularity of a broadcast domain for an IP frame may comprise a subnet, whereas for an IPX frame the broadcast domain may be defined as all stations belonging to an IPX network. Message exchanges between areas of the internetwork having different VLAN designations are generally limited to routing operations in order to preserve the boundaries of each broadcast domain.
The IPX protocol generally manifests as a broadcast of messages and, as a result, an IPX network typically has a fixed, one-to-one relationship with a VLAN domain. The IP protocol, however, does not generally broadcast messages because its higher-level protocols maintain a history of routes to neighboring end stations. IP protocols thus support multi-netting, which is a router function that involves assigning several IP subnets to the same VLAN. Since IPX does not support multi-netting, VLANs are often individually assigned among IPX networks coupled to ports of a switch. This creates a problem for a multiprotocol switching environment that includes an IP subnet associated with a single VLAN.
A known solution to this problem involves classifying VLANs "on-the-fly" at each input port as a message enters the switch. This type of distributed control system is an expensive solution which does not scale well and is generally difficult to manage. An additional concern with such a distributed system is the need for customers to upgrade all of the ports of a switch, which may be prohibitive in certain cases.
Attempts to control broadcast domains for different protocols carried by frames present further problems in that one domain is not necessarily a subset of the other. Assume a multi-port switch is statically configured (programmed) such that half of the ports are assigned a first VLAN designation for a first IPX network and the other half of ports are assigned a second VLAN designation for a second IPX network. Assume it is also desired to associate all of the ports with a single IP subnet having the same VLAN designation. Current multiprotocol switching environments cannot reconfigure VLANs previously programmed to physical ports of a switch to support such overlapping VLAN designations. As a result, the IP subnet would have to be apportioned into at least two VLANs in accordance with the programmed port assignments. This approach would effectively eliminate an advantage provided by subnetting, namely, the transfer of frames using bridging, instead of routing, operations.
Thus, an object of the present invention is to provide a system capable of controlling broadcast domains for different protocols supported by an internetwork switch.
Another object of the present invention is to provide a centralized forwarding technique capable of associating different VLANs with a defined broadcast domain of an internetwork.
Yet another object of the present invention is to provide a mapping technique that promotes bridging operations within defined broadcast domains controlled by a switch of an internetwork.